package com.microservice.wechat.config;

import com.microservice.wechat.mapper.WechatConfigMapper;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * 微信API配置类
 */
@Data
@Component
@ConfigurationProperties(prefix = "wechat.api")
public class WechatApiConfig {

    @Autowired
    private WechatConfigMapper wechatConfigMapper;

    /**
     * 历史文章API地址
     */
    private String historyUrl;

    /**
     * 阅读量API地址
     */
    private String viewcountUrl;

    /**
     * API密钥
     */
    private String key;

    /**
     * 公众号账号biz列表（配置文件中的，作为后备）
     */
    private List<String> bizList = new ArrayList<>();

    /**
     * 每个账号最大翻页数
     */
    private Integer maxPage = 10;

    /**
     * API超时时间（秒）
     */
    private Integer timeout = 30;

    /**
     * 获取biz列表
     * 优先从数据库读取，如果数据库为空则使用配置文件中的
     * 
     * @return biz列表
     */
    public List<String> getBizList() {
        try {
            // 尝试从数据库读取
            List<String> dbBizList = wechatConfigMapper.getEnabledBizList();
            if (!CollectionUtils.isEmpty(dbBizList)) {
                return dbBizList;
            }
        } catch (Exception e) {
            // 数据库读取失败，使用配置文件中的
        }
        
        // 返回配置文件中的biz列表
        return bizList;
    }
}
